package net.csdn.business.notify.common.model.dto;

import java.util.Date;

import com.alibaba.fastjson2.JSONObject;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import java.io.Serializable;
import org.springframework.format.annotation.DateTimeFormat;

/**
 * 新增通知中心-用户通知记录对象DTO notify_remind_record
 * 
 * @author zhangyl
 * @date 2023-11-27
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class NewNotifyRemindRecordDTO implements Serializable
{

    private static final long serialVersionUID = 1L;


    /** 请求批次号 */
    private String batchNum;
    /** 业务编码 */
    private String businessCode;
    /** 发送者id，当为-1时，为系统发送 */
    private String senderId;
    /** 接收者id */
    private String recipientId;
    /** 通知通道 */
    private Integer notifyChannel;
    /** 通知账号 */
    private String notifyAccount;
    /** 被操作对象id，例如：项目、ISSUE、PullRequest的id */
    private String targetId;
    /** 被操作对象类型，例如：project:项目、issue:issue、pull_request:合并请求 */
    private String targetType;
    /** 操作对像所属主体的命名空间信息：{id：命名空间id;type:类型（eg:project:项目；org:组织；user:个人);path：命名空间路径；name:名称路径} */
    private JSONObject nameSpace;
    /** 消息内容 */
    private String message;
    /** 通知投递状态：0：未投递；1：投递成功；-1：投递失败 */
    private Integer notifyState;
    /** 是否已读：1：已读；0：未读 */
    private Integer readState;
    /** 用户读取时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date readDate;
    /** 公告创建人 */
    private String createdBy;
    /** 公告拉取时间 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date createdDate;
    /** 最后修改人 */
    private String lastModifiedBy;
    /** 最后修改日期 */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date lastModifiedDate;
}
